home *** CD-ROM | disk | FTP | other *** search
-
- {*******************************************************}
- { }
- { Turbo Pascal Runtime Library }
- { Windows API Interface Unit }
- { }
- { Copyright (c) 1991 Borland International }
- { }
- {*******************************************************}
-
- unit WINNLS16;
-
- interface
-
- uses WinTypes, WinProcs;
-
- { ------------------------ Types from WINDOWS.H ----------------------- }
-
- (* EnumFonts font type values *)
- const
- EXTERNAL_FONTTYPE = $0008;
- WIFE_FONTTYPE = $0008;
-
- (* EUDC/GAIJI escapes *)
- const
- TTYMODE = 2560;
- GAIJIFIRST = TTYMODE + $10;
- GAIJIFONTSIZE = GAIJIFIRST;
- GAIJIAREASIZE = GAIJIFIRST+1;
- GAIJISYSTEMGETFONT = GAIJIFIRST+2;
- GAIJISYSTEMSETFONT = GAIJIFIRST+3;
- GAIJIITOCODE = GAIJIFIRST+4;
- GAIJILOCALOPEN = GAIJIFIRST+5;
- GAIJILOCALCLOSE = GAIJIFIRST+6;
- GAIJILOCALSETFONT = GAIJIFIRST+7;
- GAIJILOCALSAVE = GAIJIFIRST+8;
- GAIJILOCALRESTORE = GAIJIFIRST+9;
- GAIJIGETFILENAME = GAIJIFIRST+10;
- GAIJISETFILENAME = GAIJIFIRST+11;
- GAIJIGETDESCRIPTIONNAME = GAIJIFIRST+12;
- GAIJIPHYSICALFONTSIZE = GAIJIFIRST+13;
-
- (* EUDC/GAIJI macros *)
- {
- #define GaijiLocalOpen(hDC) (HANDLE)LOWORD(Escape(hDC,GAIJILOCALOPEN,NULL,NULL,NULL))
- #define GaijiLocalClose(hDC,hGaiji) (BOOL)Escape(hDC,GAIJILOCALCLOSE,hGaiji,NULL,NULL)
- #define GaijiFontSize(hDC,lpP) Escape(hDC,GAIJIFONTSIZE,NULL,NULL,(LPSTR)lpP)
- #define GaijiAreaSize(hDC) (short)Escape(hDC,GAIJIAREASIZE,NULL,NULL,NULL)
- #define GaijiLocalSetFont(hDC,hGaiji,hBitmap,lpch) (short)Escape(hDC,GAIJILOCALSETFONT,hGaiji,
- (LPSTR)(LONG)MAKELONG(hBitmap,NULL),lpch)
- #define GaijiSystemGetFont(hDC,hBitmap,lpch) (BOOL)Escape(hDC,GAIJISYSTEMGETFONT,NULL,
- (LPSTR)(LONG)MAKELONG(hBitmap,NULL),lpch)
- #define GaijiLocalSave(hDC,hGaiji,wFlags) (HANDLE)Escape(hDC,GAIJILOCALSAVE,hGaiji,
- (LPSTR)(LONG)MAKELONG(wFlags,NULL),NULL)
- #define GaijiLocalRestore(hDC,hGaiji,hMem) (short)Escape(hDC,GAIJILOCALRESTORE,hGaiji,
- (LPSTR)(LONG)MAKELONG(hMem,NULL),NULL)
- #define GaijiSystemSetFont(hDC,index,hBitmap,lpch) (BOOL)Escape(hDC,GAIJISYSTEMSETFONT,index,
- (LPSTR)(LONG)MAKELONG(hBitmap,NULL),lpch)
- #define GaijiItoCode(hDC,index,lpch) (BOOL)Escape(hDC,GAIJIITOCODE,index,NULL,lpch)
- #define GaijiPhysicalFontSize(hDC,index,lppoint) (BOOL)Escape(hDC,GAIJIPHYSICALFONTSIZE,0,
- (LPSTR)(DWORD)(index),(LPSTR)(lppoint))
- }
-
- { ------------------------ Types from IME.H --------------------------- }
-
- const
- (* virtual key *)
- VK_DBE_ALPHANUMERIC = $0f0;
- VK_DBE_KATAKANA = $0f1;
- VK_DBE_HIRAGANA = $0f2;
- VK_DBE_SBCSCHAR = $0f3;
- VK_DBE_DBCSCHAR = $0f4;
- VK_DBE_ROMAN = $0f5;
- VK_DBE_NOROMAN = $0f6;
- VK_DBE_ENTERWORDREGISTERMODE = $0f7; (* 3.1 *)
- VK_DBE_IME_WORDREGISTER = VK_DBE_ENTERWORDREGISTERMODE; (* for 3.0 *)
- VK_DBE_ENTERIMECONFIGMODE = $0f8; (* 3.1 *)
- VK_DBE_IME_DIALOG = VK_DBE_ENTERIMECONFIGMODE; (* for 3.0 *)
- VK_DBE_FLUSHSTRING = $0f9; (* 3.1 *)
- VK_DBE_FLUSH = VK_DBE_FLUSHSTRING; (* for 3.0 *)
- VK_DBE_CODEINPUT = $0fa;
- VK_DBE_NOCODEINPUT = $0fb;
- VK_DBE_DETERMINESTRING = $0fc; (* 3.1 *)
- VK_DBE_ENTERDLGCONVERSIONMODE = $0fd; (* 3.1 *)
-
-
- (* switch for wParam of IME_MOVECONVERTWINDOW (IME_SETCONVERSIONWINDOW) *)
- MCW_DEFAULT = $00;
- MCW_RECT = $01;
- MCW_WINDOW = $02;
- MCW_SCREEN = $04;
- MCW_VERTICAL = $08;
- MCW_HIDDEN = $10;
- MCW_CMD = $16; (* command mask *)
-
- (* switch for wParam of IME_SETCONVERSIONMODE(IME_SET_MODE) and
- IME_GETCONVERSIONMODE(IME_GET_MODE)
- *)
- IME_MODE_ALPHANUMERIC = $0001;
- IME_MODE_KATAKANA = $0002;
- IME_MODE_HIRAGANA = $0004;
- IME_MODE_SBCSCHAR = $0008;
- IME_MODE_DBCSCHAR = $0010;
- IME_MODE_ROMAN = $0020;
- IME_MODE_NOROMAN = $0040;
- IME_MODE_CODEINPUT = $0080;
- IME_MODE_NOCODEINPUT = $0100;
-
- (* functions *)
- const
- IME_GETIMECAPS = $03; (* 3.1 *)
- IME_QUERY = IME_GETIMECAPS; (* for 3.0 *)
- IME_SETOPEN = $04;
- IME_GETOPEN = $05;
- IME_ENABLE = $06;
- IME_GETVERSION = $07; (* 3.1 *)
- IME_SETCONVERSIONWINDOW = $08; (* 3.1 *)
- IME_MOVECONVERTWINDOW = IME_SETCONVERSIONWINDOW; (* for 3.0 *)
- IME_SETCONVERSIONMODE = $10; (* 3.1 *)
- IME_SET_MODE = IME_SETCONVERSIONMODE; (* for 3.0 *)
- IME_GETCONVERSIONMODE = $11; (* 3.1 *)
- IME_GET_MODE = IME_GETCONVERSIONMODE; (* for 3.0 *)
- IME_SETCONVERSIONFONT = $12; (* 3.1 *)
- IME_SETFONT = IME_SETCONVERSIONFONT; (* for 3.0 *)
- IME_SENDVKEY = $13; (* 3.1 *)
- IME_SENDKEY = IME_SENDVKEY; (* for 3.0 *)
- IME_DESTROY = $14;
- IME_PRIVATE = $15;
- IME_WINDOWUPDATE = $16;
- IME_ENTERWORDREGISTERMODE = $18; (* 3.1 *)
- IME_WORDREGISTER = IME_ENTERWORDREGISTERMODE; (* for 3.0 *)
- IME_SETCONVERSIONFONTEX = $19; (* New for 3.1 *)
-
- IME_SETUNDETERMINESTRING = $50; (* New for 3.1 (PENWIN) *)
- IME_SETCAPTURE = $51; (* New for 3.1 (PENWIN) *)
-
- IME_PRIVATEFIRST = $0100; (* New for 3.1 *)
- IME_PRIVATELAST = $04FF; (* New for 3.1 *)
-
- (* error code *)
- IME_RS_ERROR = $01; (* genetal error *)
- IME_RS_NOIME = $02; (* IME is not installed *)
- IME_RS_TOOLONG = $05; (* given string is too long *)
- IME_RS_ILLEGAL = $06; (* illegal charactor(s) is string *)
- IME_RS_NOTFOUND = $07; (* no (more) candidate *)
- IME_RS_NOROOM = $0a; (* no disk/memory space *)
- IME_RS_DISKERROR = $0e; (* disk I/O error *)
- IME_RS_CAPTURED = $10; (* IME is captured (PENWIN) *)
- IME_RS_INVALID = $11; (* invalid sub-function was specified *)
- IME_RS_NEST = $12; (* called nested *)
- IME_RS_SYSTEMMODAL = $13; (* called when system mode *)
-
- (* messge ids *)
- WM_IME_REPORT = $0280;
- IR_STRINGSTART = $100;
- IR_STRINGEND = $101;
- IR_OPENCONVERT = $120;
- IR_CHANGECONVERT = $121;
- IR_CLOSECONVERT = $122;
- IR_FULLCONVERT = $123;
- IR_IMESELECT = $130;
- IR_STRING = $140;
- IR_DBCSCHAR = $160; (* New for 3.1 *)
- IR_UNDETERMINE = $170; (* New for 3.1 *)
- IR_STRINGEX = $180; (* New for 3.1 *)
-
- WM_IMEKEYDOWN = $0290;
- WM_IMEKEYUP = $0291;
-
- type
- PImeStruct = ^TImeStruct;
- TImeStruct = record
- fnc : word; { function code }
- wParam : word; { word parameter }
- wCount : word; { word count }
- dchSource, { offset to Source from top of memory object }
- dchDest : word; { offset to Destination from top of memory object }
- lParam1,
- lParam2,
- lParam3 : pointer;
- end;
-
- TWMImeReport = record
- Msg: Cardinal;
- Report: Word;
- Handle: Word;
- Unused: Word;
- Result: Longint
- end;
-
- (*
- type
- POLDUNDETERMINESTRUCT = TOLDUNDETERMINESTRUCT;
- TOLDUNDETERMINESTRUCT = record
- uSize,
- uDefIMESize,
- uLength,
- uDeltaStart,
- uCursorPos : word;
- BYTE
- cbColor : array[0..15];
- /* -- These members will have variable length. --
- BYTE cbAttrib[];
- BYTE cbText[];
- BYTE cbIMEDef[];
- */
- } OLDUNDETERMINESTRUCT,
- NEAR *NPOLDUNDETERMINESTRUCT,
- FAR *LPOLDUNDETERMINESTRUCT;
- *)
-
- type
- PUNDETERMINESTRUCT = ^TUNDETERMINESTRUCT;
- TUNDETERMINESTRUCT = record
- case integer of
- 0: (
- dwSize : longint;
- uDefIMESize,
- uDefIMEPos,
- uUndetTextLen,
- uUndetTextPos,
- uUndetAttrPos,
- uCursorPos,
- uDeltaStart,
- uDetermineTextLen,
- uDetermineTextPos,
- uDetermineDelimPos,
- uYomiTextLen,
- uYomiTextPos,
- uYomiDelimPos : word; );
- 1: (
- data : array[0..0] of char; );
- end;
-
- type
- PSTRINGEXSTRUCT = ^TSTRINGEXSTRUCT;
- TSTRINGEXSTRUCT = record
- case integer of
- 0: (
- dwSize : longint;
- uDeterminePos,
- uDetermineDelimPos,
- uYomiPos,
- uYomiDelimPos : word; );
- 1: (
- data : array[0..0] of char; );
- end;
-
- { ------------------------ functions from IME.H --------------------------- }
- function SendIMEMessage( Wnd: HWnd; Ime: Longint ): Bool;
- function SendIMEMessageEx( Wnd: HWnd; Ime: Longint ): Longint; (* New for 3.1 *)
-
- { ------------------------ Types from WINNLS.H ------------------------ }
- type
- TDateTime = record
- year,
- month,
- day,
- hour,
- min,
- sec : word;
- end;
-
- PImePro = ^TImePro;
- TImePro = record
- hwnd : HWnd;
- InstDate : TDateTime;
- wVersion : word;
- szDescription : array[0..49] of char;
- szName : array[0..79] of char;
- szOption : array[0..29] of char;
- end;
-
- { ------------------------ functions from WINNLS.H ------------------------ }
- function IMPGetIME( hwnd : HWnd; lpIMEPro : PImePro ) : bool;
- function IMPQueryIME( lpIMEPro : PImePro ) : bool;
- function IMPSetIME( hwnd : HWnd; lpIMEPro : PImePro ) : bool;
-
- function WINNLSEnableIME( hwnd : HWnd; bool : BOOL ) : bool;
- function WINNLSGetEnableStatus( hwnd: HWnd ) : Bool;
-
- function WINNLSGetIMEHotkey( hwnd : HWnd ) : Word;
-
- (*
- function WINNLSDefIMEProc(
- hwnd: HWnd;
- HDC: HDC;
- WPARAM1, WPARAM2 : Word;
- LPARAM1, LPARAM2 : longint;
- ) : Bool;
-
- function ControlIMEMessage(
- hwnd : HWnd
- lpIMEPro: PImePro,
- WPARAM1, WPARAM2 : Word;
- LPARAM : longint;
- ) : longint;
-
- function IMPRetrieveIME( lpIMEPro: PImePro, WPARAM: Word ): Bool;
-
- *)
-
- implementation
-